<?php
namespace App\Http\Controllers;

use Barryvdh\Debugbar\Facades\Debugbar;

/**
 * 如何使用视图
 */
class ViewController extends Controller
{
    public function view()
    {
        $shareData = ['share1' => 'is share1', 'share2' => 'is share2'];
        /**
         * 方便跳转
         * @var \Illuminate\View\Factory $viewFactory
         */
        $viewFactory = view(); 
        $viewFactory->share($shareData);
        /* //获取所有share数据
        $getShareData =$viewFactory->getShared();
        dump($getShareData);
    */
        /**
         * 方便跳转
         * @var \Illuminate\View\View $view
         */
        $data = ['id' => 'view'];
        $view = view('task', $data);
       /*  //只能获取view('task')视图的数据
        $variables = $view->getData();
        dump($variables);  */
        return $view;
    }

    function indexview()
    {
        DebugBar::disable();
        $data = ['title' => '表弟的主页', 'subtitle' => '欢迎来到我的主页', 'content' => '这里是我的主页，欢迎访问'];
        return view('index', $data);
    }

    /**
     * 已经有主视图,主视图调用了其他视图,其他视图自动渲染
     * 一般我们不会,除非这个视图的数据需要独立调用,不然我们都会放在主视图中
     * view('public.base2')->with($baseData);   错误的设置,没有返回的视图是无效的
     * View::composer()
     */
    function mulitView()
    {
        DebugBar::disable();
        $data = ['title' => '表弟的主页', 'subtitle' => '欢迎来到我的主页', 'content' => '这里是我的主页，欢迎访问'];
        $baseData = ['base1' => 'is base1', 'base2' => 'is base2'];
        //错误的设置,没有返回的视图是无效的
        //view('public.base2')->with($baseData); 
        \View::composer(
            ['public.base2'],function ($view) use ($baseData) {
                $view->with($baseData);
        });
        $view = view('index2', $data);
        return $view;
    }

    function form()
    {
        DebugBar::disable();
        return view('form');
    }
}